<?php
/**
 * Description of CidadeService
 *
 * @author Magno
 */
class CidadeService {


    private $cidadeDAO;
    function __construct() {
        $this->cidadeDAO = new CidadeDAO();
    }


    public function salvar($cidade) {

        try {
            return $this->cidadeDAO->salvar($cidade);
        }catch(Exception $err) {
            throw new Exception($err->getMessage());
        }

    }

    public function excluir($cidadeID) {

        try {
            if(!isset ($cidadeID) || $cidadeID <= 0)
                throw new Exception("Codigo da Cidade Nao Econtrado!!!");

            $this->cidadeDAO->excluir($cidadeID);
        }catch(Exception $err) {
            throw new Exception($err->getMessage());
        }

    }

    public function listar($pagina = 0,$nome = "", $estadoID = 0) {
        try {
            return $this->cidadeDAO->listar($pagina,$nome,$estadoID);
        }catch(Exception $err) {
            throw new Exception($err->getMessage());
        }
    }

    public function buscarPorID($cidadeID) {
        try {
            if(!isset ($cidadeID) || $cidadeID <= 0)
                throw new Exception("Codigo da Cidade Nao Econtrado!!!");
            return $this->cidadeDAO->buscarPorID($cidadeID);
        }catch(Exception $err) {
            throw new Exception($err->getMessage());
        }
    }
    
    public function buscarPorSiglaEstadoENome($siglaEstado, $nome) {
        try {
            if(!isset ($siglaEstado) || strlen($siglaEstado) <= 0
                    || !isset ($nome) || strlen($nome) <= 0)
                throw new Exception("Codigo da Cidade Nao Econtrado!!!");
            return $this->cidadeDAO->buscarPorSiglaEstadoENome($siglaEstado, $nome);
        }catch(Exception $err) {
            throw new Exception($err->getMessage());
        }
    }
    
    public function total($nome = "",$estadoID = 0) {
        try {
            return $this->cidadeDAO->total($nome,$estadoID);
        }catch(Exception $err) {
            throw new Exception($err->getMessage());
        }
    }
}
?>
